﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AAA.Meta.Chart.Util
{
    public class ProfileUtil
    {
        public static float CalPriceLabel(float fPriceInterval, float fPrice) {
            if (fPriceInterval != 0)
            {
                return (float)(Math.Floor(fPrice / fPriceInterval) * fPriceInterval);
            }
            else {
                return 0;
            }
        }

        public static DateTime GetPeriodStartTime(int TimePeriod, DateTime StartTime, DateTime EndTime, DateTime dtTime)
        {
            if (dtTime.Ticks > EndTime.Ticks) {
                dtTime = EndTime;
            }
            TimeSpan timeSpan = new TimeSpan(dtTime.Ticks - StartTime.Ticks);
            return GetPeriodStartTime(TimePeriod, StartTime, dtTime);
        }

        public static DateTime GetPeriodStartTime(int TimePeriod, DateTime StartTime, DateTime dtTime)
        {
            TimeSpan timeSpan = new TimeSpan(dtTime.Ticks - StartTime.Ticks);
            DateTime dtResult = StartTime.AddSeconds(Math.Ceiling((timeSpan.TotalSeconds) / TimePeriod) * TimePeriod);
            return dtResult;
        }
        
        public static DateTime GetProfileStartTime(int TimePeriod, DateTime StartTime, DateTime dtTime)
        {
            TimeSpan timeSpan = new TimeSpan(dtTime.AddSeconds(-60).Ticks - StartTime.Ticks);
            DateTime dtResult = StartTime.AddSeconds(Math.Floor((timeSpan.TotalSeconds) / TimePeriod) * TimePeriod);
            return dtResult;
        }
    }
}
